<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Model\User;
use App\Http\Requests;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;

class IndexController extends CommonController
{
    public function index(){
    	return view('admin.index');
    }
    public function info(){
    	return view('admin.info');
    }

    /**
     * 修改超级管理员密码
     * @return [type] [description]
     */
    public function pass(){
    	//使用input接收提交的信息
    	if($input = Input::all()){
    		//验证规则
    		$rules = [
    			'password_o'=>'required',//原密码不能为空
    			'password'=>'required | between:6,20 | confirmed',//新密码不能为空,必须是6到20位,确认密码使用confirmed来指定.而且第二次输入密码的模板中字段需要写成password_confirmation
    			'password_confirmation'=>'required',//新密码重新输入
    		];
    		//中文提示信息
    		$message = [
    			'password_o.required'=>'原始密码不能为空',
    			'password.required'=>'新密码不能为空',
    			'password.between'=>'新密码必须是6到20位之间',
    			'password.confirmed'=>'两次密码输入不一致',
                'password_confirmation.required'=>'确认密码不能为空',
    		];
    		//自动验证make方法中三个参数(验证什么信息,验证规则,中文提示信息)
    		$v = Validator::make($input,$rules,$message);
    		//passes()验证信息是否通过
    		if($v->passes()){
                //获取用户的信息
    			$user = User::first();
                //对用户密码进行解密(因数据库中的密码没有进行加密所以暂不能进行解密)下面操作已经进行加密
                $_password = Crypt::decrypt($user->user_pass);
                /*//未加密之前不能使用解密操作 使用直接调用 
                $_password = $user->user_pass;*/
                //判断用户输入的原密码是否与数据库中的密码相同
                if($input['password_o'] == $_password){
                    //相同进行密码替换 把原来的密码替换成加密后的密码
                    $user->user_pass = Crypt::encrypt($input['password']);
                    //将替换后的密码进行保存
                    $user->update();
                    //修改密码后输出成功信息 
                    return back()->with('errors','密码修改成功');
                }else{
                    //原密码与数据库中的密码不相同 返回上一步操作(修改密码) 输出错误信息
                    return back()->with('errors','原密码错误');
                }
    		}else{
                //修改密码验证信息不通过 返回上一步操作 输出错误信息
    			return back()->withErrors($v);
    		}
    	}else{
            //input没有接收信息 显示页面
    		return view('admin.pass');
    	}
    }
}
